Compactando / descompactando arquivos simultaneamente [Melhorado]
Publicado por Sandro Marcell 18/07/2007
[ Hits: 6.353 ]
Homepage: http://sanmarcell.wordpress.com
Este script compacta/descompacta arquivos simultaneamente, sem necessidade de parâmetros extras.
Ex.: nome_script arq.txt arq.pdf arq.gz arq.tar.gz
Os arquivos arq.txt e arq.pdf serão compactados; já os arquivs arq.gz e arq.tar.gz serão descompactados.
Está é a versão Shell Bash de um script Tcl que postei aqui no VOL.
Falou!!!
#!/bin/bash # # Compacte/descompacte arquivos simultaneamente. # (Versão Shell Bash) # # Autor: Sandro Marcell (sandro_marcell@yahoo.com.br) # # Uso: nome_script arquivo1 [arquivoN] # # Obs.: # É possível o uso do metacaractere (*) # São necessários os programas: tar, gzip e bzip2 # Realçando saída do comando 'echo': Echo () { echo -e "\e[1m$*\e[m" ; } # Checando parâmetros: [ -z $BASH_ARGC ] && Echo "Uso: $(basename $0) arquivo1 [arquivoN]" && exit # Simples avisos: Aguarde () { Echo "Descompactando..." ; sleep 1 ; } Aguarde2 () { Echo "Compactando..." ; sleep 1 ; } # Arquivo de log: LOG=/tmp/$(basename $0)-$USER.log # Função que testa código de retorno: Testando () { [ $? == 0 ] && Echo "Arquivo descompactado!" \ || Echo "-> Erro! Mais detalhes em $LOG" } # Início do loop: for A ; do # Testes condicionais: [ ! -e $A ] && Echo "-> Arquivo não encontrado." && continue [ ! -O $A ] && Echo "-> Acesso negado." && continue # Compactar ou descompactar? case $A in # Descompactando... *.tar.gz | *.tgz) Aguarde tar -zxf $A 2>> $LOG Testando $? ;; *.gz) Aguarde gunzip $A 2>> $LOG Testando $? ;; *.tar.bz2 | *.tbz) Aguarde tar -jxf $A 2>> $LOG Testando $? ;; *.bz2) Aguarde bunzip2 $A 2>> $LOG Testando $? ;; *) # Compactando... [ -d $A ] && { Aguarde2 tar -czf $A.tar.gz $A 2>> $LOG [ $? == 0 ] && Echo "Diretório compactado!" \ || Echo "-> Erro! Mais detalhes em $LOG" } || { Aguarde2 gzip -f9 $A 2>> $LOG [ $? == 0 ] && Echo "Arquivo compactado!" \ || Echo "-> Erro! Mais detalhes em $LOG" } ;; esac done #Fim
Configurando clientes NIS em distros baseadas no Red Hat
Maior ou Menor (script operadores)
Atenção a quem posta conteúdo de dicas, scripts e tal (2)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
Sistema da Coréia do Norte - Red Star OS (12)
Acesso a internet servidor virtualizado (11)
Cant ´t attach process a10c: error 0 Wine fecha (3)
Dongle Bluetooth 5.0 não funciona no Pop Os 22.04 (4)
redirecionando saida de comando touch para o AWK[AJUDA] (17)